-
Notifications
You must be signed in to change notification settings - Fork 8.4k
Dynamic OCSP cache invalidation #13609
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for kubernetes-ingress-nginx canceled.
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Vexali0n The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This issue is currently awaiting triage. If Ingress contributors determines this is a relevant issue, they will accept it by applying the The Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Welcome @Vexali0n! |
Hi @Vexali0n. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
What this PR does / why we need it:
OpenResty Lua library supports for about a year new field for OCSP (next_update) which provides exact value retrieved directly from OCSP server until when the response is valid.
Here is the updated function in their repo: (https://github.com/openresty/lua-resty-core/blob/master/lib/ngx/ocsp.lua#L126)
This feature is able to be used since those versions of libraries:
export LUA_NGX_VERSION=v0.10.27
export LUA_STREAM_NGX_VERSION=v0.0.15
export LUA_RESTY_CORE=v0.1.29
Currently main branch contains higher versions than this so this feature is available to be used:
export LUA_NGX_VERSION=v0.10.28
export LUA_STREAM_NGX_VERSION=v0.0.16
export LUA_RESTY_CORE=v0.1.31
Current solution caches OCSP response for fixed 3 days, this PR is able to set cache properly based on the real value provided by OCSP response, if OCSP response does not contain next_update field (its optional), we fallback to the original logic of fixed 3 days
This helps with better OCSP cache invalidation. Fixed 3 days no longer needed as the only option.
Types of changes
How Has This Been Tested?
I received request to create proper cache invalidation for our nginx ingress controllers which are basically fork of your repo from which we are building the image of nginx controller. So tests were done in our own k8s clusters across 2 stages. Thanks to the log messages introduced in this PR, we were able to see what value has been used for cache invalidation directly in the nginx controller pods and it has matched with the OCSP response provided from OCSP server and hence we got much better cache invalidation.
K8s cluster 1.31.9
Nginx controller image built from your repo + changes introduced in this PR
Checklist:
Please, point out any issue you see with this PR. It is first time I am trying to merge code changes into your repo.